/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Pedido1.java
 *
 * Created on 29/04/2011, 15:57:59
 */

package br.com.comprasPublicas.view.cadastro;

import br.com.comprasPublicas.view.pesquisa.PesquisaProdutoView;
import br.com.comprasPublicas.view.pesquisa.PesquisaSecaoView;
import br.com.comprasPublicas.dao.DAOGenerico;
import br.com.comprasPublicas.entity.ItemPedido;
import br.com.comprasPublicas.entity.Pedido;
import br.com.comprasPublicas.entity.Produto;
import br.com.comprasPublicas.entity.Secao;
import br.com.comprasPublicas.util.HibernateUtil;
import br.com.comprasPublicas.util.FormatadoresUtil;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;


/**
 *
 * @author COMPRAS
 */
public class PedidoView extends javax.swing.JFrame {

    /** Creates new form Pedido1 */
    public PedidoView() {
        initComponents();
        //formatando a tabela tblItemPedido
        preencher_tblItemPedido();
        btnNovo.requestFocus();
        tblItemPedido.setSelectionMode(0);
        
        //Método utilizado para centralizar o JFrame na tela
        Dimension tela = Toolkit.getDefaultToolkit().getScreenSize();
        this.setLocation((tela.width - this.getSize().width) / 2, (tela.height - this.getSize().height) / 2);
        
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        btnRemoverItem = new javax.swing.JButton();
        pnlDadosSolicitante = new javax.swing.JPanel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        txtCodDepartamento = new javax.swing.JTextField();
        txtDescDepartamento = new javax.swing.JTextField();
        txtCodSecao = new javax.swing.JTextField();
        txtDescSecao = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        txtSolicitante = new javax.swing.JTextField();
        pnlDadosPedido = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        txtCodigo = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        ftxtDataPedido = new javax.swing.JFormattedTextField();
        jLabel6 = new javax.swing.JLabel();
        txtObjetoCompra = new javax.swing.JTextField();
        btnVoltar = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        tblItemPedido = new javax.swing.JTable();
        pnlBotoes = new javax.swing.JPanel();
        btnNovo = new javax.swing.JButton();
        btnSalvar = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        jLabel9 = new javax.swing.JLabel();
        txtCodProd = new javax.swing.JTextField();
        jLabel10 = new javax.swing.JLabel();
        txtProduto = new javax.swing.JTextField();
        jLabel11 = new javax.swing.JLabel();
        txtQuantidade = new javax.swing.JTextField();
        btnAdicionarItem = new javax.swing.JButton();
        jLabel13 = new javax.swing.JLabel();
        cmbUnidade = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setName("Form"); // NOI18N
        setResizable(false);
        setUndecorated(true);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowActivated(java.awt.event.WindowEvent evt) {
                formWindowActivated(evt);
            }
            public void windowClosed(java.awt.event.WindowEvent evt) {
                formWindowClosed(evt);
            }
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        jPanel1.setName("jPanel1"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(br.com.comprasPublicas.compraspublicas.ComprasPublicasApp.class).getContext().getResourceMap(PedidoView.class);
        jLabel1.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        btnRemoverItem.setFont(resourceMap.getFont("btnRemoverItem.font")); // NOI18N
        btnRemoverItem.setText(resourceMap.getString("btnRemoverItem.text")); // NOI18N
        btnRemoverItem.setEnabled(false);
        btnRemoverItem.setName("btnRemoverItem"); // NOI18N
        btnRemoverItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnRemoverItemActionPerformed(evt);
            }
        });

        pnlDadosSolicitante.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("pnlDadosSolicitante.border.title"))); // NOI18N
        pnlDadosSolicitante.setName("pnlDadosSolicitante"); // NOI18N

        jLabel4.setText(resourceMap.getString("jLabel4.text")); // NOI18N
        jLabel4.setName("jLabel4"); // NOI18N

        jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N
        jLabel5.setName("jLabel5"); // NOI18N

        txtCodDepartamento.setEnabled(false);
        txtCodDepartamento.setName("txtCodDepartamento"); // NOI18N
        txtCodDepartamento.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtCodDepartamentoFocusLost(evt);
            }
        });

        txtDescDepartamento.setEnabled(false);
        txtDescDepartamento.setName("txtDescDepartamento"); // NOI18N

        txtCodSecao.setEnabled(false);
        txtCodSecao.setName("txtCodSecao"); // NOI18N
        txtCodSecao.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtCodSecaoFocusLost(evt);
            }
        });

        txtDescSecao.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        txtDescSecao.setEnabled(false);
        txtDescSecao.setName("txtDescSecao"); // NOI18N
        txtDescSecao.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtDescSecaoFocusLost(evt);
            }
        });

        jLabel7.setText(resourceMap.getString("jLabel7.text")); // NOI18N
        jLabel7.setName("jLabel7"); // NOI18N

        txtSolicitante.setEnabled(false);
        txtSolicitante.setName("txtSolicitante"); // NOI18N
        txtSolicitante.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtSolicitanteFocusLost(evt);
            }
        });

        javax.swing.GroupLayout pnlDadosSolicitanteLayout = new javax.swing.GroupLayout(pnlDadosSolicitante);
        pnlDadosSolicitante.setLayout(pnlDadosSolicitanteLayout);
        pnlDadosSolicitanteLayout.setHorizontalGroup(
            pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlDadosSolicitanteLayout.createSequentialGroup()
                .addGroup(pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel4)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlDadosSolicitanteLayout.createSequentialGroup()
                                .addComponent(jLabel7)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtSolicitante))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlDadosSolicitanteLayout.createSequentialGroup()
                                .addGroup(pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(txtCodSecao, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(txtCodDepartamento, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(txtDescSecao)
                                    .addComponent(txtDescDepartamento, javax.swing.GroupLayout.DEFAULT_SIZE, 334, Short.MAX_VALUE))))))
                .addContainerGap())
        );
        pnlDadosSolicitanteLayout.setVerticalGroup(
            pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlDadosSolicitanteLayout.createSequentialGroup()
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtCodDepartamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtDescDepartamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtCodSecao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtDescSecao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(pnlDadosSolicitanteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7)
                    .addComponent(txtSolicitante, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );

        pnlDadosPedido.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("pnlDadosPedido.border.title"))); // NOI18N
        pnlDadosPedido.setName("pnlDadosPedido"); // NOI18N

        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        txtCodigo.setEnabled(false);
        txtCodigo.setName("txtCodigo"); // NOI18N

        jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
        jLabel3.setName("jLabel3"); // NOI18N

        ftxtDataPedido.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(java.text.DateFormat.getDateInstance(java.text.DateFormat.MEDIUM))));
        ftxtDataPedido.setEnabled(false);
        ftxtDataPedido.setName("ftxtDataPedido"); // NOI18N

        jLabel6.setText(resourceMap.getString("jLabel6.text")); // NOI18N
        jLabel6.setName("jLabel6"); // NOI18N

        txtObjetoCompra.setText(resourceMap.getString("txtObjetoCompra.text")); // NOI18N
        txtObjetoCompra.setName("txtObjetoCompra"); // NOI18N
        txtObjetoCompra.setNextFocusableComponent(txtCodSecao);

        javax.swing.GroupLayout pnlDadosPedidoLayout = new javax.swing.GroupLayout(pnlDadosPedido);
        pnlDadosPedido.setLayout(pnlDadosPedidoLayout);
        pnlDadosPedidoLayout.setHorizontalGroup(
            pnlDadosPedidoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlDadosPedidoLayout.createSequentialGroup()
                .addGroup(pnlDadosPedidoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(pnlDadosPedidoLayout.createSequentialGroup()
                        .addComponent(jLabel2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jLabel3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(ftxtDataPedido, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(pnlDadosPedidoLayout.createSequentialGroup()
                        .addComponent(jLabel6)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 291, Short.MAX_VALUE))
                    .addComponent(txtObjetoCompra, javax.swing.GroupLayout.DEFAULT_SIZE, 379, Short.MAX_VALUE))
                .addContainerGap())
        );
        pnlDadosPedidoLayout.setVerticalGroup(
            pnlDadosPedidoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlDadosPedidoLayout.createSequentialGroup()
                .addGroup(pnlDadosPedidoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3)
                    .addComponent(ftxtDataPedido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtObjetoCompra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        btnVoltar.setFont(resourceMap.getFont("btnVoltar.font")); // NOI18N
        btnVoltar.setMnemonic('v');
        btnVoltar.setText(resourceMap.getString("btnVoltar.text")); // NOI18N
        btnVoltar.setName("btnVoltar"); // NOI18N
        btnVoltar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnVoltarActionPerformed(evt);
            }
        });

        jScrollPane2.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jScrollPane2.border.title"))); // NOI18N
        jScrollPane2.setName("jScrollPane2"); // NOI18N

        tblItemPedido.setAutoCreateRowSorter(true);
        tblItemPedido.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "item", "Cod.", "Descrição", "Unid.", "Qtde."
            }
        ));
        tblItemPedido.setName("tblItemPedido"); // NOI18N
        tblItemPedido.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        tblItemPedido.getTableHeader().setResizingAllowed(false);
        tblItemPedido.getTableHeader().setReorderingAllowed(false);
        jScrollPane2.setViewportView(tblItemPedido);

        pnlBotoes.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        pnlBotoes.setName("pnlBotoes"); // NOI18N

        btnNovo.setFont(resourceMap.getFont("btnNovo.font")); // NOI18N
        btnNovo.setMnemonic('n');
        btnNovo.setText(resourceMap.getString("btnNovo.text")); // NOI18N
        btnNovo.setMaximumSize(new java.awt.Dimension(69, 28));
        btnNovo.setName("btnNovo"); // NOI18N
        btnNovo.setPreferredSize(new java.awt.Dimension(69, 28));
        btnNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNovoActionPerformed(evt);
            }
        });

        btnSalvar.setFont(resourceMap.getFont("btnSalvar.font")); // NOI18N
        btnSalvar.setMnemonic('s');
        btnSalvar.setText(resourceMap.getString("btnSalvar.text")); // NOI18N
        btnSalvar.setEnabled(false);
        btnSalvar.setName("btnSalvar"); // NOI18N
        btnSalvar.setPreferredSize(new java.awt.Dimension(71, 28));
        btnSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSalvarActionPerformed(evt);
            }
        });

        btnCancelar.setFont(resourceMap.getFont("btnCancelar.font")); // NOI18N
        btnCancelar.setMnemonic('c');
        btnCancelar.setText(resourceMap.getString("btnCancelar.text")); // NOI18N
        btnCancelar.setEnabled(false);
        btnCancelar.setName("btnCancelar"); // NOI18N
        btnCancelar.setPreferredSize(new java.awt.Dimension(83, 28));
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout pnlBotoesLayout = new javax.swing.GroupLayout(pnlBotoes);
        pnlBotoes.setLayout(pnlBotoesLayout);
        pnlBotoesLayout.setHorizontalGroup(
            pnlBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlBotoesLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(pnlBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnSalvar, javax.swing.GroupLayout.DEFAULT_SIZE, 83, Short.MAX_VALUE)
                    .addComponent(btnNovo, javax.swing.GroupLayout.DEFAULT_SIZE, 83, Short.MAX_VALUE)
                    .addComponent(btnCancelar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        pnlBotoesLayout.setVerticalGroup(
            pnlBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlBotoesLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(btnNovo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnSalvar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnCancelar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(16, Short.MAX_VALUE))
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel2.border.title"))); // NOI18N
        jPanel2.setName("jPanel2"); // NOI18N

        jLabel9.setText(resourceMap.getString("jLabel9.text")); // NOI18N
        jLabel9.setName("jLabel9"); // NOI18N

        txtCodProd.setText(resourceMap.getString("txtCodProd.text")); // NOI18N
        txtCodProd.setEnabled(false);
        txtCodProd.setName("txtCodProd"); // NOI18N
        txtCodProd.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtCodProdFocusLost(evt);
            }
        });

        jLabel10.setText(resourceMap.getString("jLabel10.text")); // NOI18N
        jLabel10.setName("jLabel10"); // NOI18N

        txtProduto.setText(resourceMap.getString("txtProduto.text")); // NOI18N
        txtProduto.setEnabled(false);
        txtProduto.setName("txtProduto"); // NOI18N
        txtProduto.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtProdutoFocusLost(evt);
            }
        });

        jLabel11.setText(resourceMap.getString("jLabel11.text")); // NOI18N
        jLabel11.setName("jLabel11"); // NOI18N

        txtQuantidade.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        txtQuantidade.setText(resourceMap.getString("txtQuantidade.text")); // NOI18N
        txtQuantidade.setEnabled(false);
        txtQuantidade.setName("txtQuantidade"); // NOI18N

        btnAdicionarItem.setFont(resourceMap.getFont("btnAdicionarItem.font")); // NOI18N
        btnAdicionarItem.setMnemonic('a');
        btnAdicionarItem.setText(resourceMap.getString("btnAdicionarItem.text")); // NOI18N
        btnAdicionarItem.setEnabled(false);
        btnAdicionarItem.setName("btnAdicionarItem"); // NOI18N
        btnAdicionarItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAdicionarItemActionPerformed(evt);
            }
        });

        jLabel13.setText(resourceMap.getString("jLabel13.text")); // NOI18N
        jLabel13.setName("jLabel13"); // NOI18N

        cmbUnidade.setFont(resourceMap.getFont("cmbUnidade.font")); // NOI18N
        cmbUnidade.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "CM", "CM³", "CX", "DZ", "FDO", "G", "KG", "L", "M", "M²", "M³", "MIL", "ML", "UN", "PECA", "RESM", "SACA", "SERV" }));
        cmbUnidade.setEnabled(false);
        cmbUnidade.setName("cmbUnidade"); // NOI18N

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(txtCodProd))
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addComponent(jLabel10))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtProduto, javax.swing.GroupLayout.DEFAULT_SIZE, 544, Short.MAX_VALUE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(cmbUnidade, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel13))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(txtQuantidade, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(17, 17, 17)
                        .addComponent(btnAdicionarItem))
                    .addComponent(jLabel11))
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel9)
                            .addComponent(jLabel10)
                            .addComponent(jLabel11))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtCodProd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtProduto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtQuantidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(btnAdicionarItem)))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jLabel13)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(cmbUnidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 935, Short.MAX_VALUE)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(6, 6, 6)
                        .addComponent(jLabel1))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(pnlDadosPedido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(pnlDadosSolicitante, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(pnlBotoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(btnRemoverItem)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 747, Short.MAX_VALUE)
                        .addComponent(btnVoltar)))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(pnlDadosSolicitante, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(pnlDadosPedido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(60, 60, 60)
                        .addComponent(pnlBotoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 255, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnRemoverItem, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnVoltar))
                .addContainerGap(12, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(355, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btnVoltarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnVoltarActionPerformed
        Object[] options = { "Sim", "Não" };
        int opcao = JOptionPane.showOptionDialog(
            null,
            "Deseja sair da tela de Grupo de Produto?",
            "Saída de Tela",
        JOptionPane.DEFAULT_OPTION,
        JOptionPane.WARNING_MESSAGE,
            null,
            options,
            options[0]);

        if (opcao == 0) {
            limpa_objetos();
            this.dispose();
        }
    }//GEN-LAST:event_btnVoltarActionPerformed

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed
        Object[] options = { "Sim", "Não" };
        int opcao = JOptionPane.showOptionDialog(
            null,
            "Deseja cancelar a inclusão do pedido?",
            "Cancelar Pedido",
        JOptionPane.DEFAULT_OPTION,
        JOptionPane.WARNING_MESSAGE,
            null,
            options,
            options[0]);

        if (opcao == 0) {
            desabilita_objeto();
            limpa_objetos();
            btnNovo.requestFocus();
            //se houver cadastrado o ItemPedido e o Pedido
            if (tblItemPedido.getModel().getRowCount() != 0){
                remove_itens();
                remove_pedido();
            }
        }

    }//GEN-LAST:event_btnCancelarActionPerformed

    private void btnNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNovoActionPerformed
        //preencher a data de hoje no campo data do pedido
        Date hoje = new Date(System.currentTimeMillis());
        String formato = "dd/MM/yyyy";
        SimpleDateFormat formatter = new SimpleDateFormat(formato);
        String dataHoje = formatter.format(hoje);
        ftxtDataPedido.setText(dataHoje);

        habilita_objetos();
        ftxtDataPedido.requestFocus();
    }//GEN-LAST:event_btnNovoActionPerformed

    private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSalvarActionPerformed
        if (valida_gravar()){
            JOptionPane.showMessageDialog(null, "Pedido numero: "+pedido.getId_pedido()+" foi gravado com Sucesso");
            //imprimiPedido();
            desabilita_objeto();
            limpa_objetos();
            btnNovo.requestFocus();

        }
    }//GEN-LAST:event_btnSalvarActionPerformed

    private void txtCodDepartamentoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtCodDepartamentoFocusLost
        
    }//GEN-LAST:event_txtCodDepartamentoFocusLost

    private void txtCodSecaoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtCodSecaoFocusLost
        if (txtCodSecao.getText().equals("")){
            txtDescDepartamento.setText("");
            txtCodDepartamento.setText("");
            txtDescSecao.setText("");
            txtDescSecao.requestFocus();

        }
        else {
            //Setar o Objeto secao selecionado
            secao = new Secao();
            List<Secao> lista = new ArrayList ();
            lista = secao_by_codigo();

            //Instanciando a Secao Selecionada
            int tamanho_lista = lista.size();
            for (int i=0; i<tamanho_lista; i++)
            {
                secao = lista.get(i);
            }
            //Preenchendo os dados da Secao e Departamento em seus
            //devidos JTextFields
            preencher_dados_secao();
            txtCodProd.requestFocus();
            txtSolicitante.setText(secao.getChefe());
        }
    }//GEN-LAST:event_txtCodSecaoFocusLost

    private void txtDescSecaoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtDescSecaoFocusLost
        //Comparando se os dados da Secao não foram recebidos
        //(Para o valor indicado no campo txtCodSecao não tem uma
        //Secao Cadastrada ou então o valor está vazio
        if (txtCodDepartamento.getText().equals("")){
            //Instanciando um frame para PesquisaSecaoView
            if (pesquisaSecaoView == null) {
                PesquisaSecaoView frame = new PesquisaSecaoView(this, rootPaneCheckingEnabled);
                frame.setVisible(true);
            }
        }
        

    }//GEN-LAST:event_txtDescSecaoFocusLost

    private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
        //Os "If"s abaixo estão verificando se a tela está retornando do 
        //PesquisaSecaoView (caso sec != null) ou do PesquisaProdutoView
        //(caso prod !=null)
        if (sec != null) {
            String secaoId = sec;
            txtCodSecao.setText(secaoId);
            txtCodSecao.requestFocus();
            txtCodSecao.lostFocus(null, evt);
            sec = null;
        }
        if (prod != null) {
            String prodId = prod;
            txtCodProd.setText(prodId);
            txtCodProd.requestFocus();
            prod = null;
        }

    }//GEN-LAST:event_formWindowActivated

    private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed
    }//GEN-LAST:event_formWindowClosed

    private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
    }//GEN-LAST:event_formWindowClosing

    private void txtCodProdFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtCodProdFocusLost
        if (txtCodProd.getText().equals("")){
            txtProduto.setText("");
        }
        else {
            //Setar o Objeto Produto selecionado
            produto = new Produto();
            List<Produto> lista = new ArrayList ();
            lista = produto_by_codigo();
            int tamanho_lista = lista.size();

            //Instanciando Produto selecionado
            for (int i=0; i<tamanho_lista; i++)
            {
                produto = lista.get(i);
            }
            preencher_dados_produto();
            txtQuantidade.requestFocus();
        }
    }//GEN-LAST:event_txtCodProdFocusLost

    /* Ao Adicionarmos um item, anteriormente estaremos adicionando um Pedido.
     * Desta Forma, a cada item adicionado na tabela teremos um ItemPedido
     * adicionado em Banco.
     */
    private void btnAdicionarItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAdicionarItemActionPerformed
        //verificando se todos os dados do pedido foram indicados - valida_gravar()
        //verificando se todos os dados do produto foram indicados - valida_produto()
        if (valida_gravar() && (valida_produto())) {
            //verificando se deve fazer inclusao de um novo pedido
            //caso a tabela esteja vazia "e" não tenha sido excluido os itens
            //(ao excluir um produto, pedidoIncluido = "s")
            if (tblItemPedido.getModel().getRowCount() == 0)
                if (pedidoIncluido.equals("n"))
                {
                    try{
                        adiciona_pedido();
                    }catch(Exception ex){
                        JOptionPane.showMessageDialog(null, "Problemas");
                    }

                    if(obj_pedido.inserir()){
                        txtCodigo.setText(Integer.toString(pedido.getId_pedido()));
                    }
                    else{
                        JOptionPane.showMessageDialog(null, "Erro ao Salvar Pedido");
                    }
                }

            pega_objetosItem();
            preencher_produtos_itemPedido();

            txtCodProd.setText("");
            txtProduto.setText("");
            txtQuantidade.setText("");
            txtCodProd.requestFocus();
            btnRemoverItem.setEnabled(true);
        }
        
    }//GEN-LAST:event_btnAdicionarItemActionPerformed

    private void txtProdutoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtProdutoFocusLost
        
        if (txtCodProd.getText().equals("")){
            if (pesquisaProdutoView == null) {
                PesquisaProdutoView frame = new PesquisaProdutoView(this, rootPaneCheckingEnabled);
                frame.setVisible(true);
            }
        }
    }//GEN-LAST:event_txtProdutoFocusLost

    private void txtSolicitanteFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtSolicitanteFocusLost
        txtCodProd.requestFocus();
    }//GEN-LAST:event_txtSolicitanteFocusLost

    private void btnRemoverItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoverItemActionPerformed
        if (tblItemPedido.getSelectedRow()==-1){
         JOptionPane.showMessageDialog(null, "Nenhum Produto Selecionado");
        }
        else{
            try
            {
                remover = true;
                Integer index = tblItemPedido.getSelectedRow();

                pega_objetoExcuir();

                if (index >= 0) {
                    Object[] options = { "Sim", "Não" };
                    int opcao = JOptionPane.showOptionDialog(
                    null,
                    "Deseja Remover item selecionado?",
                    "Remover",
                    JOptionPane.DEFAULT_OPTION,
                    JOptionPane.WARNING_MESSAGE,
                    null,
                    options,
                    options[0]);
                    if (opcao == 0)
                    {
                        obj_itemPedido = new DAOGenerico(itemPedido);
                        
                        if(obj_itemPedido.excluir()){
                            //removendo o item selecionado na tabela da listaItens
                            int selecao_item_apagar = tblItemPedido.getSelectedRow();
                            listaItens.remove(selecao_item_apagar);
                            
                            JOptionPane.showMessageDialog(null, "Produto excluído com sucesso");
                            DefaultTableModel modelo_tbl = (DefaultTableModel) tblItemPedido.getModel();
                            modelo_tbl.removeRow(tblItemPedido.getSelectedRow());

                            
                        }
                        else{
                            JOptionPane.showMessageDialog(null, "Produto não foi excluído");
                        }
                    }

                }
                else JOptionPane.showMessageDialog(null, "Selecione algum item a excluir");
            }
            catch(Exception erro)
            {
                JOptionPane.showMessageDialog(null, "Não foi possível remover item "+erro);
            }
            remover = false;
            pedidoIncluido = "s";
        }
    }//GEN-LAST:event_btnRemoverItemActionPerformed

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new PedidoView().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnAdicionarItem;
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnNovo;
    private javax.swing.JButton btnRemoverItem;
    private javax.swing.JButton btnSalvar;
    private javax.swing.JButton btnVoltar;
    private javax.swing.JComboBox cmbUnidade;
    private javax.swing.JFormattedTextField ftxtDataPedido;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JPanel pnlBotoes;
    private javax.swing.JPanel pnlDadosPedido;
    private javax.swing.JPanel pnlDadosSolicitante;
    private javax.swing.JTable tblItemPedido;
    private javax.swing.JTextField txtCodDepartamento;
    private javax.swing.JTextField txtCodProd;
    private javax.swing.JTextField txtCodSecao;
    private javax.swing.JTextField txtCodigo;
    private javax.swing.JTextField txtDescDepartamento;
    private javax.swing.JTextField txtDescSecao;
    private javax.swing.JTextField txtObjetoCompra;
    private javax.swing.JTextField txtProduto;
    private javax.swing.JTextField txtQuantidade;
    private javax.swing.JTextField txtSolicitante;
    // End of variables declaration//GEN-END:variables

    public void preencher_tblItemPedido()
    {
        tblItemPedido.getColumnModel().getColumn(0).setPreferredWidth(0);
        tblItemPedido.getColumnModel().getColumn(1).setPreferredWidth(20);
        tblItemPedido.getColumnModel().getColumn(2).setPreferredWidth(600);
        tblItemPedido.getColumnModel().getColumn(3).setPreferredWidth(40);
        tblItemPedido.getColumnModel().getColumn(4).setPreferredWidth(100);
    }

    public void preencher_produtos_itemPedido()
    {
        //Verificando se o Produto a ser incluido já existe neste Pedido
        int listaVerDuplicidade = listaItens.size();
        for (int j=0;j<listaVerDuplicidade; j++){
            ItemPedido produtoDup = new ItemPedido();
            produtoDup = listaItens.get(j);
            if (produtoDup.getProduto().getId_produto() == itemPedido.getProduto().getId_produto()){
                duplicidade = "s";
            }
        }
        //Se não existir o Produto na tabela, o Produto selecionado será incluso
        if (duplicidade.equals("n")){
            if (obj_itemPedido.inserir()){
            }
            else JOptionPane.showMessageDialog(null, "Item Pedido Não Adicionado");
            listaItens.add(itemPedido);
            DefaultTableModel modelo_tbl = (DefaultTableModel) tblItemPedido.getModel();
            modelo_tbl.addRow(new Object[]{itemPedido.getId_itemPedido(),
                                           itemPedido.getProduto().getId_produto(),
                                           itemPedido.getProduto().getNome(),
                                           itemPedido.getUnidade(),
                                           itemPedido.getQuantidade(),
                                           });
            
        }
        else if(duplicidade.equals("s")) JOptionPane.showMessageDialog(null, "Item já inserido no Pedido");
        duplicidade = "n";
    }

   
   private void adiciona_pedido(){
        try{
            Date dataPedido = Calendar.getInstance().getTime();

            pedido = new Pedido();
            //pedido.setId_pedido(Integer.parseInt(txtCodigo.getText()));

            dataPedido = FormatadoresUtil.data2Banco(ftxtDataPedido.getText());
            pedido.setData_pedido(dataPedido);

            pedido.setObjeto_compra(txtObjetoCompra.getText());

            secao = new Secao();
            List<Secao> lista = new ArrayList ();
            lista = secao_by_codigo();
            int tamanho_lista = lista.size();
            for (int i=0; i<tamanho_lista; i++)
            {
                secao = lista.get(i);
            }
            pedido.setSecao(secao);

            pedido.setSolicitante(txtSolicitante.getText());

            obj_pedido = new DAOGenerico(pedido);
        }
        catch(Exception erro)
        {
            JOptionPane.showMessageDialog(null, "Não foi possível selecionar um pedido "+erro);
        }
    }

    public void pega_objetosItem()
    {
        itemPedido = new ItemPedido();
        itemPedido.setPedido(pedido);
        //itemPedido.setId_itemPedido(Integer.parseInt(item));
        itemPedido.setProduto(produto);
        itemPedido.setQuantidade(Integer.parseInt(txtQuantidade.getText()));
        itemPedido.setUnidade(cmbUnidade.getModel().getSelectedItem().toString());

        obj_itemPedido = new DAOGenerico(itemPedido);
    }

    private void pega_objetoExcuir() {
        if (remover == true){
            //Setar o Objeto itemPedido selecionado
            List<ItemPedido> lista = new ArrayList ();
            lista = item_pedido_tabela();
            int tamanho_lista = lista.size();
            for (int i=0; i<tamanho_lista; i++)
            {
                itemPedido = lista.get(i);
            }
        }
    }

    public List secao_by_codigo()
    {
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();
        Query query = sessao.createQuery("from Secao where id_secao = :id_sec");
        query.setString("id_sec", txtCodSecao.getText());

        List secaoList = query.list();

        transacao.commit();
        sessao.close();

        return secaoList;
    }

    public List pedido_by_codigo()
    {
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();
        Query query = sessao.createQuery("from Pedido where id_pedido = :id_ped");
        query.setString("id_ped", txtCodigo.getText());

        List pedidoList = query.list();

        transacao.commit();
        sessao.close();

        return pedidoList;
    }

    public List produto_by_codigo()
    {
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();
        Query query = sessao.createQuery("from Produto where id_produto = :id_prod");
        query.setString("id_prod", txtCodProd.getText());

        List produtoList = query.list();

        transacao.commit();
        sessao.close();

        return produtoList;
    }

    public List item_pedido_tabela()
    {
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();
        Query query = sessao.createQuery("from ItemPedido where id_itemPedido = :id_item");
        query.setInteger("id_item", Integer.parseInt(tblItemPedido.getModel().getValueAt(tblItemPedido.getSelectedRow(),0).toString()));

        List list = query.list();

        transacao.commit();
        sessao.close();

        return list;
    }
    
    private void remove_itens() {
        int tamanho_lista = listaItens.size();
        for (int i=0; i<tamanho_lista; i++)
        {
            itemPedido = listaItens.get(i);
            
            obj_itemPedido = new DAOGenerico(itemPedido);

            if (obj_itemPedido.excluir()){
            }
            else JOptionPane.showMessageDialog(null, "Erro ao cancelar o item ");
        }
    }

    private void remove_pedido() {
        obj_pedido = new DAOGenerico(pedido);
        if (obj_pedido.excluir()){

        }
        else JOptionPane.showMessageDialog(null, "Erro ao cancelar o Pedido");
        DefaultTableModel modelo_tblProdutos = (DefaultTableModel) tblItemPedido.getModel();
        modelo_tblProdutos.setNumRows(0);
    }

    public void preencher_dados_secao()
    {
        //preencher os objetos secao e departamento
        txtDescSecao.setText(secao.getSecao().toString());
        txtSolicitante.requestFocus();

        Integer codDepartamento = secao.getDepartamento().getId_departamento();
        txtCodDepartamento.setText(codDepartamento.toString());

        String descDepartamento = secao.getDepartamento().getDepartamento();
        txtDescDepartamento.setText(descDepartamento.toString());
    }

    public void preencher_dados_produto()
    {
        //preencher os objetos do Produto
        txtProduto.setText(produto.getNome().toString());
        txtQuantidade.requestFocus();

        String unidade = produto.getUnidade();
        cmbUnidade.setSelectedItem(unidade);
    }

    public void habilita_objetos()
    {
        ftxtDataPedido.setEnabled(true);
        txtCodSecao.setEnabled(true);
        txtDescSecao.setEnabled(true);
        txtSolicitante.setEnabled(true);
        txtObjetoCompra.setEnabled(true);
        tblItemPedido.setEnabled(true);
        btnNovo.setEnabled(false);
        btnCancelar.setEnabled(true);
        btnSalvar.setEnabled(true);
        txtCodProd.setEnabled(true);
        txtProduto.setEnabled(true);
        txtQuantidade.setEnabled(true);
        btnAdicionarItem.setEnabled(true);
        cmbUnidade.setEnabled(true);
    }

    public void desabilita_objeto()
    {
        ftxtDataPedido.setEnabled(false);
        txtCodSecao.setEnabled(false);
        txtDescSecao.setEnabled(false);
        txtSolicitante.setEnabled(false);
        txtObjetoCompra.setEnabled(false);
        tblItemPedido.setEnabled(false);
        btnNovo.setEnabled(true);
        btnCancelar.setEnabled(false);
        btnSalvar.setEnabled(false);
        txtCodProd.setEnabled(false);
        txtProduto.setEnabled(false);
        txtQuantidade.setEnabled(false);
        btnAdicionarItem.setEnabled(false);
        cmbUnidade.setEnabled(false);
    }

    public void limpa_objetos()
    {
        txtCodDepartamento.setText("");
        txtCodProd.setText("");
        txtCodSecao.setText("");
        txtCodigo.setText("");
        txtDescDepartamento.setText("");
        txtDescSecao.setText("");
        txtProduto.setText("");
        txtQuantidade.setText("");
        txtSolicitante.setText("");
        txtObjetoCompra.setText("");
        ftxtDataPedido.setText("");
        DefaultTableModel tableModel =(DefaultTableModel) tblItemPedido.getModel();  
        tableModel.setNumRows(0);
    }

    public Boolean valida_produto()
    {
        Boolean retorno = true;
        String erros = new String();

        if (txtProduto.getText().equals("")){
            erros += "Produto não informado\n";
            retorno = false;
        }

        if (txtQuantidade.getText().equals("")){
            erros += "Quantidade não informada\n";
            retorno = false;
        }

        if (!retorno){
            JOptionPane.showMessageDialog(null, "Os seguinte(s) erro(s) ocorreu(ram):\n"+erros);
        }

        return retorno;
    }

    public Boolean valida_gravar() {
        Boolean retorno = true;
        String erros = new String();

        if (ftxtDataPedido.getText().equals("")){
            erros += "Informar Data do Pedido\n";
            retorno = false;
        }
        if (txtCodSecao.getText().equals("")){
            erros += "Informar Seção\n";
            retorno = false;
        }
        if (txtSolicitante.getText().equals("")){
            erros += "Informar Solicitante\n";
            retorno = false;
        }
        if (txtObjetoCompra.getText().equals("")){
            erros += "Informar Objeto de Compra\n";
            retorno = false;
        }
        if (!retorno){
            JOptionPane.showMessageDialog(null, "Corrigir seguinte(s) ocorrência(s):\n"+erros);
        }

        return retorno;
    }

    private List<ItemPedido> listaItens = new ArrayList<ItemPedido>();
    private Pedido pedido;
    public static String sec=null;
    public static String prod=null;
    private Secao secao;
    private PesquisaSecaoView pesquisaSecaoView;
    private PesquisaProdutoView pesquisaProdutoView;
    private Produto produto;
    private ItemPedido itemPedido;
    private String item;
    private DAOGenerico obj_itemPedido;
    private DAOGenerico obj_pedido;
    private String pedidoIncluido = "n";
    private Boolean remover = false;
    private Pedido pedidoBusca;
    private String duplicidade ="n";

    private HashMap parametros = new HashMap();


}
